/**
 * @作者 钟诚
 * @日期 2011-7-31
 * @时间 下午08:48:45
 * @描述
 * @版本
 */
package my.commons;

import java.io.IOException;
import java.util.Properties;

import my.utils.Constant;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @作者 钟诚
 * @日期 2011-7-31
 * @时间 下午08:48:45
 * @描述
 * @版本 v1.0
 */
public class ReadCfg {
	private static final Log log = LogFactory.getLog(ReadCfg.class);
	private static final Properties prop = new Properties();

	/**
	 * 
	 * @描述 根据key读取配置文件中的value
	 * @作者 钟诚
	 * @日期 Sep 13, 2011
	 * @时间 4:23:24 PM
	 * @param key
	 * @return
	 */
	public static String getProp(String key) {
		if (null == prop)
			initProp();
		return prop.getProperty(key);
	}

	/**
	 * 
	 * @描述 根据key赌徒配置文件中的value，如果value不存在则使用指定的默认值
	 * @作者 钟诚
	 * @日期 Sep 13, 2011
	 * @时间 4:24:40 PM
	 * @param key
	 * @param defaultValue
	 *            默认值
	 * @return
	 */
	public static String getProp(String key, String defaultValue) {
		if (null == prop)
			initProp();
		return prop.getProperty(key, defaultValue);
	}

	/**
	 * 
	 * @描述 根据key读取配置文件中的命令value<br />
	 *     实际操作为将key加入command的前缀。
	 * @作者 钟诚
	 * @日期 Sep 13, 2011
	 * @时间 4:25:33 PM
	 * @param key
	 *            命令的key，配置文件中体现的是命令前缀+key
	 * @return
	 */
	public static String getCommand(String key) {
		if (null == prop)
			initProp();
		return prop.getProperty(Constant.COMMAND_PRE + key);
	}

	/**
	 * 
	 * @描述 初始化操作
	 * @作者 钟诚
	 * @日期 Sep 13, 2011
	 * @时间 4:27:09 PM
	 */
	public static void initProp() {
		try {
			prop.load(ReadCfg.class.getResourceAsStream("/config/config.properties"));
			log.debug("config.properties配置文件加载成功!");
		} catch (IOException e) {
			log.fatal("config.properties配置文件未找到!", e);
			throw new ExceptionInInitializerError(e);
		}
	}
}
